package com.mathdemo;

public class MathDemo {
    public static void main(String[] args) {
        /*
        public static int     abs(int a)               获取参数绝对值
        public static double  ceil(double a)           向上取整
        public static double  floor(double a)          向下取整
        public static int     round(float a)           四舍五入
        public static int     max(int a,int b)         获取两个int值中的较大值
        public static double  pow(double a ,double b)  返回a的b次幂的值
        public static double  sqrt(double a)           返回a的平方根
        public static double  cbrt(double a)           返回a的立方根
        public static double  random()                 返回值为double的随机值，范围[0.0,1.0)
         */


        //abs 获取参数绝对值
        System.out.println(Math.abs(98));//98
        System.out.println(Math.abs(-18));//18
        // bug:
        //以int类型为例，取值范围:-2147483648 ~2147483647
        //如果没有正数与负数对应，那么传递负数结果有误
        //-2147483648没有正数与之对应，所以abs结果产生bug
        System.out.println(Math.abs(-2147483648));
        //System.out.println(Math.absExact(-2147483648));
        System.out.println("=========");
        //ceil 向上取整
        System.out.println(Math.ceil(12.34));//13.0
        System.out.println(Math.ceil(6.58));//7.0
        System.out.println(Math.ceil(-12.34));//-12.0
        System.out.println(Math.ceil(-6.58));//-6.0
        System.out.println("=========");
        //floor 向下取整
        System.out.println(Math.floor(12.34));//12.0
        System.out.println(Math.floor(6.58));//6.0
        System.out.println(Math.floor(-12.34));//-13.0
        System.out.println(Math.floor(-6.58));//-7.0
        System.out.println("=========");
        //round 四舍五入
        System.out.println(Math.round(12.34));//12
        System.out.println(Math.round(6.58));//7
        System.out.println(Math.round(-12.34));//-12
        System.out.println(Math.round(-6.58));//-7
        System.out.println("=========");
        //max 获取两个int值中的较大值
        //min 获取两个int值中的较小值
        System.out.println(Math.max(20,30));//30
        System.out.println(Math.min(20,30));//20
        System.out.println("=========");
        //pow 返回a的b次幂的值
        System.out.println(Math.pow(2,3));//8.0
        //细节:
        //第二个参数可以是0~1之间的小数或者负数
        System.out.println(Math.pow(4,0.5));//2.0
        System.out.println(Math.pow(2,-2));//0.25
        //建议:
        //第二个参数:一般传递大于等于1的正整数。
        System.out.println(Math.sqrt(9));//3.0
        System.out.println(Math.cbrt(8));//2.0
        System.out.println("=========");
        //random() 返回值为double的随机值，范围[0.0,1.0)
        for (int i = 0; i < 10; i++) {
            System.out.println(Math.random());
        }

    }
}
